package com.example.everying.model.entity.user;/*
 * 项目名称: everything
 * 文件名: user
 * 作者: 张泽阳
 * 日期: 2025/5/14
 * 描述:
 */



import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "all_user")
public class UserEntity {
    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    private String id;

    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名")
    private String userName;

    /**
     * 真实姓名
     */
    @ApiModelProperty(value = "真实姓名")
    private String realName;

    /**
     * 密码
     */
    @ApiModelProperty(value = "密码")
    private String password;
    /**
     * 支付密码
     */
    @ApiModelProperty(value = "支付密码")
    private String payPassword;

    /**
     * 生日
     */
    @ApiModelProperty(value = "生日")
    private String birthday;

    /**
     * 头像地址
     */
    @ApiModelProperty(value = "头像地址")
    private String avatarUrl;

    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号")
    private String phone;

    /**
     * 邮箱
     */
//    @ApiModelProperty(value = "邮箱")
//    private String email;

    /**
     * 身份证号
     */
    @ApiModelProperty(value = "身份证号")
    private String idCard;

    /**
     * 微信openId
     */
    @ApiModelProperty(value = "微信openId")
    private String openId;

    /**
     * 性别
     */
    @ApiModelProperty(value = "性别 0：男；1：女")
    private String gender;

    /**
     * 是否是管理员
     */
    @ApiModelProperty(value = "是否是管理员 1：后台管理员；2：普通用户；3：校园管理员")
    private Integer isAdministrator;

    /**
     * 注册时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "注册时间")
    private LocalDateTime signTime;

    /**
     * 学号
     */
    @ApiModelProperty(value = "学号")
    private String studentId;

    /**
     *  学校名称
     */
    @ApiModelProperty(value = "学校名称")
    private String schoolName;

    /**
     * 学校id
     */
    @ApiModelProperty(value = "学校id")
    private String schoolId;


    /**
     * 学校认证信息
     */
    @ApiModelProperty(value = "学生证URL")
    private String schoolAccreditation;

    /**
     * 信用值
     */
    @ApiModelProperty(value = "信用值")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Double creditValue;

    /**
     * 余额
     */
    @ApiModelProperty(value = "余额")
    private BigDecimal balance;

    /**
     * 标签
     */
    //private String label;

    /**
     * 个人简介
     */
    @ApiModelProperty(value = "个人简介")
    private String personalIntroduction;

    /**
     * 牛力值
     */
    @ApiModelProperty(value = "牛力值")
    private Integer cattleValue;

    /**
     * 位置
     */
    @ApiModelProperty(value = "位置")
    private String location;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    private Integer state;

    @ApiModelProperty(value = "邀请人id")
    private String inviterId;

    @ApiModelProperty(value = "邀请码")
    private String inviteCode;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime  createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime  updateTime;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String creator;

    /**
     * 更新人
     */
    @ApiModelProperty(value = "更新人")
    private String updater;

    /**
     * 是否删除
     */
    @ApiModelProperty(value = "是否删除 0：否1：是")
    private Integer isDelete;

    /**
     * 官方通知未读个数
     */
    @ApiModelProperty(value = "官方通知未读个数")
    private Integer noticeUnreadCount;


    @ApiModelProperty(value = "是否实名认证")
    private boolean isUserAuth;

    @ApiModelProperty(value = "是否第一次注册")
    private Integer isFirst;

    @ApiModelProperty(value = "是否弹窗关闭")
    private boolean popupClosed;

//     private void setUserAuth(boolean isUserAuth) {
//         this.isUserAuth = isUserAuth;
//     }
}
